#pragma once
#include "singletonTemplate.h"

class IFileClean;
typedef IFileClean* (*pfn_GetDiskFree)();
typedef void (*pfn_ReleaseDiskFree)(IFileClean*);

class CDiskFree
{
	friend class CSingleton<CDiskFree>;

private:
	//static CDiskFree* m_pInstance;
	CDiskFree(void);
	CDiskFree(const CDiskFree&);
	CDiskFree& operator= (const CDiskFree&); 
	~CDiskFree(void);

public:
	bool Initialize();

	bool LoadDLL();

	void StartFree();

	void StopFree();

private:


private:
	pfn_ReleaseDiskFree m_pfnReleaseDiskFree;
	pfn_GetDiskFree m_pfnGetDiskFree;
	HMODULE m_hDLL;
	IFileClean* m_pDiskFree;
};

